package BigInteger_BigDecimal;

import java.math.BigInteger;
import java.util.Random;

public class BigIntegerDemo1 {
    public static void main(String[] args) {

        //1.  BigInteger   // 采用分段存储  max: 21e ^ 41e
        //获取一个随机大的整数
        //0 ~ 2^4 -1
        BigInteger bi1 = new BigInteger(4,new Random());
        System.out.println(bi1);

        //2.获取一个指定的大整数
        BigInteger bi2 = new BigInteger("1000");
        System.out.println(bi2);

        //3.获取指定进制下的十进制对应的大整数
        BigInteger bi3 = new BigInteger("100",2);  //4
        System.out.println(bi3);

        //4.BigInteger.valueOf()
        // 静态方法获取BigInteger的对象有优化
        //在常用数字:  -16 ~ 16 事先创建好了BigInteger的对象

        BigInteger bi4 = BigInteger.valueOf(16);
        BigInteger bi5 = BigInteger.valueOf(16);
        System.out.println(bi4 == bi5); // true

        BigInteger bi6 = BigInteger.valueOf(17);
        BigInteger bi7 = BigInteger.valueOf(17);
        System.out.println(bi6 == bi7); // false

        //5.常见的方法
        //public BigInteger add(BigInteger val)        //加法
        //public BigInteger subtract(BigInteger val)        //减法
        //public BigInteger multiply(BigInteger val)        //乘法
        //public BigInteger divide(BigInteger val)        //除法，获取商
        //public BigInteger[] diwideAndRemainder BigInteger val)        //除法，获取商和余数
        //public boolean equals(object x)        //比较是否相同
        //public BigInteger pow(int exponent)        //次幂
        //public BigInteger max/min(BigInteger val)        //返回较大值/较小值
        //public int intValue(BigInteger val)        //转为int类型整数，超出范围数据有误


    }
}
